The present invention relates to a global positioning system (GPS) and a method of GPS operation and, more specifically, to a method of dynamic GPS location updating using a coarse grain grid.
The GPS is a satellite-based navigation system made up of a network of satellites placed into earth orbit. The GPS was originally intended for military applications but in the 1980s it was made available for civilian use. The GPS works in any weather conditions, anywhere in the world, 24 hours a day. The satellites circle the earth twice a day in a very precise orbit and transmit signal information to earth where receivers take this information and use trilateration to calculate a user's exact location. Essentially, the receivers compare the time a signal was transmitted by a satellite with the time it was received. The time difference tells the GPS receiver how far away the satellite is from the GPS receiver. Now, with distance measurements from additional satellites, the receivers can determine the user's position and display it on an electronic map. In operation, a receiver must be locked on to the signal of at least 3 satellites to calculate a 2-D position (latitude and longitude) and track movement. With four or more satellites in view, the receiver can determine the user's 3-D position (latitude, longitude, and altitude). Once the user's position has been determined, other information, such as speed of the user's movements, bearing, track, trip distance, distance to destination, sunrise and sunset time and more can be calculated.
In current applications, users often access GPS location information by way of a battery powered mobile devices, such as a smartphone or a tablet. Such use of GPS location capabilities on mobile devices represents a significant drain on battery power and thus often exhibits a trade-off between accuracy or update frequency and battery power. For example, in the Android™ API, GPS applications provide the user with an option to specify the frequency of updates (e.g., updates every 5 seconds) or to specify updates by distance (e.g., update every 10 feet).